package com.ruicar.afs.cloud.bizcommon.commission.feign;

import com.alibaba.fastjson.JSONObject;
import com.ruicar.afs.cloud.bizcommon.commission.dto.currency.ConfirmSendMailDto;
import com.ruicar.afs.cloud.bizcommon.commission.dto.currency.GetCurrencyRewardListDto;
import com.ruicar.afs.cloud.bizcommon.commission.dto.reward.ConfirmReceiveMoneyDto;
import com.ruicar.afs.cloud.bizcommon.commission.dto.reward.CurrencyRewardReturnListDto;
import feign.Response;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.context.annotation.Description;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * @author yaorui.zhang
 * @version 1.0
 * @Description 佣金系统-通用奖励
 * @date create on 2020年6月8日 15:26:49
 * @since 1.0
 */
@FeignClient(name = "QuarterrewardFeign", url = "${com.greatwall.systems.commission-system.url}")
public interface QuarterrewardFeign {

    @Description("奖励-下发列表")
    @PostMapping(value = "/quarterreward/list")
    public JSONObject list(@RequestBody GetCurrencyRewardListDto getCurrencyRewardListDto, @RequestHeader Map<String, String> headers);

    @Description("奖励-经销商系统下载确认函")
    @GetMapping(value = "/quarterreward/signletter")
    Response signletter(@RequestParam("id") String id);

    @Description("奖励-经销商系统确认确认回执")
    @PostMapping(value = "/quarterreward/sign")
    public JSONObject sign(@RequestBody JSONObject json);

    @Description("奖励-经销商获取奖励邮寄信息列表")
    @PostMapping(value = "/quarterreward/expresslist")
    public JSONObject expresslist(@RequestBody JSONObject json);

    @Description("奖励-奖励发票邮寄历史信息列表")
    @PostMapping(value = "/quarterreward/sendmailmessage")
    public JSONObject sendmailmessage(@RequestBody JSONObject json);

    @Description("奖励-经销商系统邮寄发票")
    @PostMapping(value = "/quarterreward/confirmsendmail")
    public JSONObject confirmsendmail(@RequestBody ConfirmSendMailDto dto);

    @Description("奖励-经销商获取奖励类型列表")
    @PostMapping(value = "/quarterreward/rewardList")
    public JSONObject rewardList();

    @Description("奖励-经销商获取季度列表")
    @PostMapping(value = "/quarterreward/quarterList")
    public JSONObject quarterList();

    @Description("奖励-查看退回确认函列表")
    @PostMapping(value = "/quarterreward/attachbacklist")
    public JSONObject attachbacklist(@RequestBody CurrencyRewardReturnListDto json, @RequestHeader Map<String, String> headers);

    @Description("奖励-经销商系统点击到账")
    @PostMapping(value = "/quarterreward/receipt")
    public JSONObject receipt(@RequestBody ConfirmReceiveMoneyDto dto);

    @Description("个人佣金-下发信息列表")
    @PostMapping(value = "/personcommission/getlist")
    public JSONObject getlist(@RequestBody JSONObject json, @RequestHeader Map<String, String> headers);

}
